################################################################################ 
#
# Counterspeech encouraging users to adopt the perspective of minority 
# groups reduces hate speech and its amplification on social media
#
# BH-adjusted pvales - engagement outomes
#
################################################################################ 

rm(list = ls())
setsave = T

################################################################################ 
#  LIBRARIES
################################################################################ 

library(dplyr)
library(tidyr)
library(readr)

################################################################################ 
#   DATA AND FOLDER
################################################################################ 

wd = ''
wd_res = paste0(wd, '/results')
wd_data =  paste0(wd, '/data')


# Upload the data
setwd(wd_data)

################################################################################ 
#  Clean container
################################################################################ 

#data$treatment[data$treatment=="Warning of Consequences"] = "Warning of\nConsequences"


################################################################################ 
#  Pval adjustment by treatment arm
################################################################################ 

save_bh_adj = function(container){
  # Load data
  data = read.csv(container)
  
  data$outvars.f = factor(data$yvar, levels=unique(data$yvar))
  
  output = data.frame()
  
  for (t in unique(data$treatments_lab)){
    
    print(paste0('Pvals for ', t))
    temp = data[which(data$treatments_lab==t),]
    
    pvals = temp$pval
    pvals = round(as.numeric(pvals), 3)
    
    
    pvals_fdr = p.adjust(pvals, method = "BH", n=length(pvals))
    pvals_fdr = round(as.numeric(pvals_fdr), 3)
    
    out = cbind(treatment = rep(t, length(pvals)),
                yvar = temp$yvar,
                pvals = pvals, 
                pvals_fdr = pvals_fdr)
    output = rbind.data.frame(output, out)
    
    print('\nOriginal Pvals:')
    print(pvals)
    
    print('\nAdjusted Pvals:')
    print(pvals_fdr)
    
  } 
  return(output)
}


output = save_bh_adj(paste0(wd_res, '/tables/engagement_result.csv'))
if (setsave){write.csv(output, paste0(wd_res, '/tables/engagement_result_bh_pvals.csv'), row.names = F)}

